import fieldTypes from '../../utils/field-types-desc';

const fieldType = fieldTypes.find(({ code }) => code === 'number') || {};

export default {
    attributes: [
        {
            params: 'v-model',
            des: '绑定值',
            type: fieldType.valueType,
            values: '-',
            defaultVal: '-',
        },
        {
            params: 'props',
            des: '表单元素配置; 详细配置请查看下方【props 配置项】',
            type: 'Object',
            values: '-',
            defaultVal: '-',
            details: [
                {
                    title: '配置项【props】',
                    configList: [
                        {
                            params: 'type',
                            des: `表单项控件的类型(此控件的 type 固定为 "${fieldType.code}")`,
                            type: 'String',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'value',
                            des: '表单项控件的默认值，若绑定值为空，将获取该值作为初始值',
                            type: fieldType.valueType,
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'valueOnClear',
                            des: '当输入框被清空时显示的默认值',
                            type: 'String',
                            values: 'Number |  null | \'min\' | \'max\'',
                            defaultVal: 'null',
                        },
                        {
                            params: 'min',
                            des: '限制数字的最小值',
                            type: 'Number',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'max',
                            des: '限制数字的最大值',
                            type: 'Number',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'precision',
                            des: '控制数值精度(小数位数)',
                            type: 'Number',
                            values: '-',
                            defaultVal: '0',
                        },
                        {
                            params: 'step',
                            des: '计数器步长',
                            type: 'Number',
                            values: '-',
                            defaultVal: '1',
                        },
                        {
                            params: 'stepStrictly',
                            des: '是否只能输入 step 的倍数',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'size',
                            des: '尺寸大小',
                            type: 'String',
                            values: '"large" | "default" | "small"',
                            defaultVal: '"default"',
                        },
                        {
                            params: 'disabled',
                            des: '是否禁用',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'readonly',
                            des: '是否只读',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'controls',
                            des: '是否使用控制按钮',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'true',
                        },
                        {
                            params: 'controlsPosition',
                            des: '控制按钮位置',
                            type: 'String',
                            values: '"" | "right"',
                            defaultVal: '-',
                        },
                        {
                            params: 'placeholder',
                            des: '输入框占位提示',
                            type: 'String',
                            values: '-',
                            defaultVal: '"请输入"',
                        },
                        {
                            params: 'showCalculator',
                            des: '是否展示计算器辅助工具',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'copyValue',
                            des: '是否允许点击计算器辅助工具的结果值时，将值复制到粘贴板',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'true',
                        },
                        {
                            params: 'showHistory',
                            des: '是否展示计算器辅助工具的计算记录面板',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'unit',
                            des: '控件尾部的单位文案配置',
                            type: 'String',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'validateEvent',
                            des: '输入时是否触发表单的校验',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'true',
                        },
                    ],
                },
            ],
        },
    ],
    events: [
        {
            name: 'change',
            des: '输入框失焦后值内容修改触发的事件',
            params: '({ value }, props)',
        },
        {
            name: 'focus',
            des: '输入框聚焦事件',
            params: '(value, props, event)',
        },
        {
            name: 'blur',
            des: '输入框失焦事件',
            params: '(value, props, event)',
        },
        {
            name: 'enter',
            des: '在输入框聚焦的情况下，按回车键触发的事件',
            params: '(value, props, event)',
        },
    ],
    slots: [],
    refs: [],
};
